GtkButton: Queue a redraw on enter/leave
authorMatthias Clasen <mclasen@redhat.com>
Tue, 24 Jun 2014 17:21:05 +0000 (13:21 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 24 Jun 2014 17:21:05 +0000 (13:21 -0400)
We currently getting a redraw for buttons, but that is just luck.
Better to make it explicit.

gtk/gtkbutton.c

index b07d364637716b5370d5dfd1ab389bbb80fc9dd5..ce4729b351ae10c4ebb6e2f4e9e9b49d2a7bb2d7 100644 (file)
@@ -134,6 +134,7 @@ static void gtk_real_button_released (GtkButton * button);
 static void gtk_real_button_clicked (GtkButton * button);
 static void gtk_real_button_activate  (GtkButton          *button);
 static void gtk_button_update_state   (GtkButton          *button);
+static void gtk_button_enter_leave    (GtkButton          *button);
 static void gtk_button_add            (GtkContainer       *container,
                                       GtkWidget          *widget);
 static GType gtk_button_child_type    (GtkContainer       *container);
@@ -237,8 +238,8 @@ gtk_button_class_init (GtkButtonClass *klass)
   klass->pressed = gtk_real_button_pressed;
   klass->released = gtk_real_button_released;
   klass->clicked = NULL;
-  klass->enter = gtk_button_update_state;
-  klass->leave = gtk_button_update_state;
+  klass->enter = gtk_button_enter_leave;
+  klass->leave = gtk_button_enter_leave;
   klass->activate = gtk_real_button_activate;
 
   props[PROP_LABEL] =
@@ -2507,6 +2508,13 @@ _gtk_button_set_depressed (GtkButton *button,
     }
 }
 
+static void
+gtk_button_enter_leave (GtkButton *button)
+{
+  gtk_button_update_state (button);
+  gtk_widget_queue_draw (GTK_WIDGET (button));
+}
+
 static void
 gtk_button_update_state (GtkButton *button)
 {